﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace TimetableCSP.Scheduler.Entities
{
	/// <summary>
	/// A base class for unary constraints.
	/// </summary>
	public abstract class UnaryConstraint : AbstractConstraint
	{
		/// <summary>
		/// Determines whether the supplied variable violates the constraint.
		/// </summary>
		/// <param name="a">The variable.</param>
		/// <param name="conflictingAttributes">
		/// If there's a conflict, then this array holds the names of those attributes that need to be modified in order to solve the conflict.
		/// </param>
		/// <returns>
		///   <c>true</c> if there's a conflict; otherwise, <c>false</c>.
		/// </returns>
		public abstract bool IsConflict(AbstractVariable a, out string[] conflictingAttributes);
	}
}
